﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Valentia.Kinection.DataTypes;

namespace Valentia.Kinection.Remoting.Proxy
{
    /// <summary>
    /// Delegate for devices connection information to be sent.
    /// </summary>    
    /// <param name="deviceConnectionInfo">Device(s) connectivity information</param>
    /// <param name="errorMessage">Error message</param>
    public delegate void DeviceConnectivityInfo(List<KinectDeviceInfo> deviceConnectionInfo, String errorMessage);

    /// <summary>
    /// Delegate for clients connection information to be sent.
    /// </summary>
    /// <param name="clientConnectionInfo">Service client(s) connectivity information</param>
    /// <param name="errorMessage">Error message</param>
    public delegate void ClientConnectivityInfo(List<ServiceClientInfo> clientConnectionInfo, String errorMessage);

    /// <summary>
    /// Delegate for service client and device connectivity
    /// </summary>    
    /// <param name="connectivityStatus">Service client(s) connectivity information</param>
    /// <param name="connectedDeviceCount">Connected device(s) count</param>
    /// <param name="connectedClientCount">Connected service client(s) count</param>    
    /// <param name="errorMessage">Error message</param>
    public delegate void ConnectionStatus(ConnectivityStatus connectivityStatus, int connectedDeviceCount, int connectedClientCount, String errorMessage);

}
